package com.gitee.wsl.security.hash

import kotlin.test.Test
import kotlin.test.assertEquals


class CityHashTest {
    @Test
    fun hash32Test() {
        var hv: Int = CityHash.hash32("你".encodeToByteArray())
        assertEquals(1290029860, hv)

        hv = CityHash.hash32("你好".encodeToByteArray())
        assertEquals(1374181357, hv)

        hv = CityHash.hash32("见到你很高兴".encodeToByteArray())
        assertEquals(1475516842, hv)
        hv =
            CityHash.hash32("我们将通过生成一个大的文件的方式来检验各种方法的执行效率因为这种方式在结束的时候需要执行文件".encodeToByteArray())
        assertEquals(0x51020cae, hv)
    }

    @Test
    fun hash64Test() {
        var hv: Long = CityHash.hash64("你".encodeToByteArray())
        assertEquals(-4296898700418225525L, hv)

        hv = CityHash.hash64("你好".encodeToByteArray())
        assertEquals(-4294276205456761303L, hv)

        hv = CityHash.hash64("见到你很高兴".encodeToByteArray())
        assertEquals(272351505337503793L, hv)
        hv =
            CityHash.hash64("我们将通过生成一个大的文件的方式来检验各种方法的执行效率因为这种方式在结束的时候需要执行文件".encodeToByteArray())
        assertEquals(-8234735310919228703L, hv)
    }
}
